﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Drawing.Drawing2D;
using System.Drawing;

/// <summary>
/// Class chứa các phương thức về định dạng hình ảnh khi upload/lưu file hình ảnh
/// </summary>
public class Resize_image
{
    /// <summary>
    /// Hàm resize ảnh
    /// </summary>
    /// <param name="tilenen">tỉ lệ nén của ảnh mới so với ảnh gốc:0,5,1...</param>
    /// <param name="filenguon">là đường dẫn đến file chứa hình:</param>
    /// <param name="thumucluu">thư mục lưu trữ hình sau khi chỉnh sửa</param>
    public static void Set_Image(double tilenen,Stream filenguon,string thumucluu)
    {
        using (var image=Image.FromStream(filenguon))
        {
            var newWidth = (int)(image.Width * tilenen);
            var newHeight = (int)(image.Height * tilenen);
            var newImg = new Bitmap(newWidth, newHeight);
            var newGrap = Graphics.FromImage(newImg);
            newGrap.CompositingQuality = CompositingQuality.HighQuality;
            newGrap.SmoothingMode = SmoothingMode.HighQuality;
            newGrap.InterpolationMode = InterpolationMode.HighQualityBicubic;
            //tạo đối tượng hình ảnh mới với giá trị vừa config
            var Image_rectangle = new Rectangle(0, 0, newWidth, newHeight);
            //vẽ đối tượng đồ họa với source và thuộc tính 
            newGrap.DrawImage(image, Image_rectangle);
            //lưu hình ảnh vừa tạo vào thư mục với định dạng image
            newImg.Save(thumucluu, image.RawFormat);

        }
    
    }
    /// <summary>
    /// Hàm resize ảnh tùy ý theo kích thước vd: 120x120...
    /// </summary>
    /// <param name="newWidth">chiều rộng(px)</param>
    /// <param name="newHeight">chiều cao(px)</param>
    /// <param name="filenguon">file nguồn</param>
    /// <param name="thumucluu">thư mục lưu trữ</param>
    public static void Set_Image(int newWidth,int newHeight,Stream filenguon, string thumucluu)
    {
        using (var image = Image.FromStream(filenguon))
        {
            
            var newImg = new Bitmap(newWidth, newHeight);
            var newGrap = Graphics.FromImage(newImg);
            newGrap.CompositingQuality = CompositingQuality.HighQuality;
            newGrap.SmoothingMode = SmoothingMode.HighQuality;
            newGrap.InterpolationMode = InterpolationMode.HighQualityBicubic;
            //tạo đối tượng hình ảnh mới với giá trị vừa config
            var Image_rectangle = new Rectangle(0, 0, newWidth, newHeight);
            //vẽ đối tượng đồ họa với source và thuộc tính 
            newGrap.DrawImage(image, Image_rectangle);
            //lưu hình ảnh vừa tạo vào thư mục với định dạng image
            newImg.Save(thumucluu, image.RawFormat);

        }

    }
    
}